package square.data;

import java.util.ArrayList;

import pedrosm.data.Data;
import pedrosm.data.ScriptData;

import square.script.SkillScript;

/**
 * 
 * @author Pedro Silva Moreira
 */
public class SkillData extends Data implements Cloneable {
	private Object owner;
	private Integer experience = 0;
	private Integer level = 0;
	private Integer maxLevel = 0;
	private Integer delay = 0;
	private Integer exhaust = 0;
	private SpriteData thumb;
	private Boolean target = false;
	private ArrayList<String> types = new ArrayList<String>();
	private ScriptData<SkillScript> script;

	// Instance
	public SkillData instance() {
		try {
			return (SkillData) this.clone();
		} catch (Exception e) {
			e.printStackTrace();
		}
		return null;
	}

	// Get & Set
	public Object getOwner() {
		return owner;
	}

	public void setOwner(Object owner) {
		this.owner = owner;
	}
	
	public Integer getExperience() {
		return experience;
	}

	public void setExperience(Integer experience) {
		this.experience = experience;
	}

	public Integer getLevel() {
		return level;
	}

	public void setLevel(Integer level) {
		this.level = level;
	}

	public Integer getMaxLevel() {
		return maxLevel;
	}

	public void setMaxLevel(Integer maxLevel) {
		this.maxLevel = maxLevel;
	}

	public Integer getDelay() {
		return delay;
	}

	public void setDelay(Integer delay) {
		this.delay = delay;
	}

	public Integer getExhaust() {
		return exhaust;
	}

	public void setExhaust(Integer exhaust) {
		this.exhaust = exhaust;
	}

	public SpriteData getThumb() {
		return thumb;
	}

	public void setThumb(SpriteData thumb) {
		this.thumb = thumb;
	}

	public ArrayList<String> getTypes() {
		return types;
	}

	public void setTypes(ArrayList<String> types) {
		this.types = types;
	}

	public Boolean getTarget() {
		return target;
	}

	public void setTarget(Boolean target) {
		this.target = target;
	}

	public ScriptData<SkillScript> getScript() {
		return script;
	}

	public void setScript(ScriptData<SkillScript> script) {
		this.script = script;
	}
}
